import { ApiProperty } from '@nestjs/swagger';
import {
  IsNotEmpty,
  IsString,
  IsNumber,
  IsOptional,
  IsArray,
} from 'class-validator';

export class CreateArticleDto {
  @IsString({ message: '文章标题必须是字符串' })
  @IsNotEmpty({ message: '文章标题不能为空' })
  @ApiProperty({
    description: '文章标题',
    example: '文章标题文章标题',
  })
  title: string;

  @IsString({ message: '文章描述必须是字符串' })
  @IsNotEmpty({ message: '文章描述不能为空' })
  @ApiProperty({
    description: '文章描述',
    example: '文章描述文章描述文章描述文章描述',
  })
  description: string;

  @IsString({ message: '文章内容必须是字符串' })
  @IsNotEmpty({ message: '文章内容不能为空' })
  @ApiProperty({
    description: '文章内容',
    example: '文章内容文章内容文章内容',
  })
  content: string;

  @IsArray()
  @IsNumber({}, { each: true }) // 验证数组中的每个元素是否为数字
  @IsOptional()
  @ApiProperty({
    description: '专栏id',
    example: [1, 2, 3],
  })
  columnIds: number[];
}
